Only call GDK_THREADS_ENTER() / _LEAVE() when called from an idle handler.
authorMatthias Clasen <maclas@gmx.de>
Tue, 6 Jul 2004 04:33:40 +0000 (04:33 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Tue, 6 Jul 2004 04:33:40 +0000 (04:33 +0000)
Tue Jul  6 00:29:03 2004  Matthias Clasen  <maclas@gmx.de>

* gtk/gtkuimanager.c (do_updates):
(do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE()
when called from an idle handler.  (#145429, Jan-Marek Glogowski)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkuimanager.c

index 2e0b9a9edcbbbf18cec3c053fbb72a1777990a7b..1b0adc35b0556249bc447e6c3fa30ab4431797d1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jul  6 00:29:03 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkuimanager.c (do_updates): 
+       (do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE() 
+       when called from an idle handler.  (#145429, Jan-Marek Glogowski)
+
 Mon Jul  5 23:47:38 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkfilechooserutils.c (delegate_notify): Use
index 2e0b9a9edcbbbf18cec3c053fbb72a1777990a7b..1b0adc35b0556249bc447e6c3fa30ab4431797d1 100644 (file)
@@ -1,3 +1,9 @@
+Tue Jul  6 00:29:03 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkuimanager.c (do_updates): 
+       (do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE() 
+       when called from an idle handler.  (#145429, Jan-Marek Glogowski)
+
 Mon Jul  5 23:47:38 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkfilechooserutils.c (delegate_notify): Use
index 2e0b9a9edcbbbf18cec3c053fbb72a1777990a7b..1b0adc35b0556249bc447e6c3fa30ab4431797d1 100644 (file)
@@ -1,3 +1,9 @@
+Tue Jul  6 00:29:03 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkuimanager.c (do_updates): 
+       (do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE() 
+       when called from an idle handler.  (#145429, Jan-Marek Glogowski)
+
 Mon Jul  5 23:47:38 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkfilechooserutils.c (delegate_notify): Use
index 2e0b9a9edcbbbf18cec3c053fbb72a1777990a7b..1b0adc35b0556249bc447e6c3fa30ab4431797d1 100644 (file)
@@ -1,3 +1,9 @@
+Tue Jul  6 00:29:03 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gtk/gtkuimanager.c (do_updates): 
+       (do_updates_idle): Only call GDK_THREADS_ENTER() / _LEAVE() 
+       when called from an idle handler.  (#145429, Jan-Marek Glogowski)
+
 Mon Jul  5 23:47:38 2004  Matthias Clasen  <maclas@gmx.de>
 
        * gtk/gtkfilechooserutils.c (delegate_notify): Use
index 7248628f082a5cf6e1a2c98a9a06e72d9e1fc455..220a2c2bd7e8c03b8dc29e347aca8ca0f29852b9 100644 (file)
@@ -2495,10 +2495,18 @@ update_node (GtkUIManager *self,
 }
 
 static gboolean
-do_updates (GtkUIManager *self)
+do_updates_idle (GtkUIManager *self)
 {
   GDK_THREADS_ENTER ();
+  do_updates (self);
+  GDK_THREADS_LEAVE ();
+
+  return FALSE;
+}
 
+static gboolean
+do_updates (GtkUIManager *self)
+{
   /* this function needs to check through the tree for dirty nodes.
    * For such nodes, it needs to do the following:
    *
@@ -2515,8 +2523,6 @@ do_updates (GtkUIManager *self)
 
   self->private_data->update_tag = 0;
 
-  GDK_THREADS_LEAVE ();
-
   return FALSE;
 }
 
@@ -2526,7 +2532,8 @@ queue_update (GtkUIManager *self)
   if (self->private_data->update_tag != 0)
     return;
 
-  self->private_data->update_tag = g_idle_add ((GSourceFunc)do_updates, self);
+  self->private_data->update_tag = g_idle_add ((GSourceFunc)do_updates_idle, 
+                                              self);
 }